package com.sbj.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sbj.dto.req.OrderReq;
import com.sbj.dto.req.ShopOrderReq;
import com.sbj.dto.req.SubmitOrderReq;
import com.sbj.dto.res.OrderGoodsRes;
import com.sbj.dto.res.OrderItemRes;
import com.sbj.dto.res.OrderRes;
import com.sbj.dto.res.ShopOrderRes;
import com.sbj.entity.Order;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author summer
 * @since 2024/08/10 10:02:39
 */
public interface OrderService extends IService<Order> {

    /**
     * 查询列表
     * @param orderReq
     * @return
     */
    Page<ShopOrderRes> lists(OrderReq orderReq);

    /**
     * 提交订单
     * @param req
     */
    void submitOrder(SubmitOrderReq req);

    /**
     * 查询商城订单
     * @param req
     * @return
     */
    Page<ShopOrderRes> shopOrderLists(ShopOrderReq req);

    /**
     * 更新订单
     * @param req
     */
    void updateShopOrder(ShopOrderReq req);

    /**
     * 商城订单详情
     * @param orderId
     * @return
     */
    List<OrderGoodsRes> getOrderGoodsById(Integer orderId);

    /**
     * 商品订单详情
     * @param orderId
     * @return
     */
    OrderItemRes findOrderItem(Integer orderId);

    /**
     * 订单发货
     * @param orderReq
     */
    void orderDeliver(OrderReq orderReq);

    /**
     * 重新提交订单
     * @param req
     */
    void resubmitOrder(OrderReq req);
}
